home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_hmac.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  6KB  |  129 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import hmac
  5. import sha
  6. import unittest
  7. from test import test_support
  8.  
  9. class TestVectorsTestCase(unittest.TestCase):
  10.     
  11.     def test_md5_vectors(self):
  12.         
  13.         def md5test(key, data, digest):
  14.             h = hmac.HMAC(key, data)
  15.             self.assertEqual(h.hexdigest().upper(), digest.upper())
  16.  
  17.         md5test(chr(11) * 16, 'Hi There', '9294727A3638BB1C13F48EF8158BFC9D')
  18.         md5test('Jefe', 'what do ya want for nothing?', '750c783e6ab0b503eaa86e310a5db738')
  19.         md5test(chr(170) * 16, chr(221) * 50, '56be34521d144c88dbb8c733f0e8b3f6')
  20.         []([]([ chr(i) for i in range(1, 26) ]), chr(205) * 50, '697eaf0aca3a3aea3a75164746ffaa79')
  21.         md5test(chr(12) * 16, 'Test With Truncation', '56461ef2342edc00f9bab995690efd4c')
  22.         md5test(chr(170) * 80, 'Test Using Larger Than Block-Size Key - Hash Key First', '6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd')
  23.         md5test(chr(170) * 80, 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', '6f630fad67cda0ee1fb1f562db3aa53e')
  24.  
  25.     
  26.     def test_sha_vectors(self):
  27.         
  28.         def shatest(key, data, digest):
  29.             h = hmac.HMAC(key, data, digestmod = sha)
  30.             self.assertEqual(h.hexdigest().upper(), digest.upper())
  31.  
  32.         shatest(chr(11) * 20, 'Hi There', 'b617318655057264e28bc0b6fb378c8ef146be00')
  33.         shatest('Jefe', 'what do ya want for nothing?', 'effcdf6ae5eb2fa2d27416d5f184df9c259a7c79')
  34.         shatest(chr(170) * 20, chr(221) * 50, '125d7342b9ac11cd91a39af48aa17b4f63f175d3')
  35.         []([]([ chr(i) for i in range(1, 26) ]), chr(205) * 50, '4c9007f4026250c6bc8414f9bf50c86c2d7235da')
  36.         shatest(chr(12) * 20, 'Test With Truncation', '4c1a03424b55e07fe7f27be1d58bb9324a9a5a04')
  37.         shatest(chr(170) * 80, 'Test Using Larger Than Block-Size Key - Hash Key First', 'aa4ae5e15272d00e95705637ce8a3b55ed402112')
  38.         shatest(chr(170) * 80, 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', 'e8e99d0f45237d786d6bbaa7965c7808bbff1a91')
  39.  
  40.  
  41.  
  42. class ConstructorTestCase(unittest.TestCase):
  43.     
  44.     def test_normal(self):
  45.         failed = 0
  46.         
  47.         try:
  48.             h = hmac.HMAC('key')
  49.         except:
  50.             self.fail('Standard constructor call raised exception.')
  51.  
  52.  
  53.     
  54.     def test_withtext(self):
  55.         
  56.         try:
  57.             h = hmac.HMAC('key', 'hash this!')
  58.         except:
  59.             self.fail('Constructor call with text argument raised exception.')
  60.  
  61.  
  62.     
  63.     def test_withmodule(self):
  64.         import sha
  65.         
  66.         try:
  67.             h = hmac.HMAC('key', '', sha)
  68.         except:
  69.             self.fail('Constructor call with sha module raised exception.')
  70.  
  71.  
  72.  
  73.  
  74. class SanityTestCase(unittest.TestCase):
  75.     
  76.     def test_default_is_md5(self):
  77.         import md5 as md5
  78.         h = hmac.HMAC('key')
  79.         self.failUnless(h.digestmod == md5)
  80.  
  81.     
  82.     def test_exercise_all_methods(self):
  83.         
  84.         try:
  85.             h = hmac.HMAC('my secret key')
  86.             h.update('compute the hash of this text!')
  87.             dig = h.digest()
  88.             dig = h.hexdigest()
  89.             h2 = h.copy()
  90.         except:
  91.             self.fail('Exception raised during normal usage of HMAC class.')
  92.  
  93.  
  94.  
  95.  
  96. class CopyTestCase(unittest.TestCase):
  97.     
  98.     def test_attributes(self):
  99.         h1 = hmac.HMAC('key')
  100.         h2 = h1.copy()
  101.         self.failUnless(h1.digestmod == h2.digestmod, "Modules don't match.")
  102.         self.failUnless(type(h1.inner) == type(h2.inner), "Types of inner don't match.")
  103.         self.failUnless(type(h1.outer) == type(h2.outer), "Types of outer don't match.")
  104.  
  105.     
  106.     def test_realcopy(self):
  107.         h1 = hmac.HMAC('key')
  108.         h2 = h1.copy()
  109.         self.failUnless(id(h1) != id(h2), 'No real copy of the HMAC instance.')
  110.         self.failUnless(id(h1.inner) != id(h2.inner), "No real copy of the attribute 'inner'.")
  111.         self.failUnless(id(h1.outer) != id(h2.outer), "No real copy of the attribute 'outer'.")
  112.  
  113.     
  114.     def test_equality(self):
  115.         h1 = hmac.HMAC('key')
  116.         h1.update('some random text')
  117.         h2 = h1.copy()
  118.         self.failUnless(h1.digest() == h2.digest(), "Digest of copy doesn't match original digest.")
  119.         self.failUnless(h1.hexdigest() == h2.hexdigest(), "Hexdigest of copy doesn't match original hexdigest.")
  120.  
  121.  
  122.  
  123. def test_main():
  124.     test_support.run_unittest(TestVectorsTestCase, ConstructorTestCase, SanityTestCase, CopyTestCase)
  125.  
  126. if __name__ == '__main__':
  127.     test_main()
  128.  
  129.